<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class PloegModel extends CI_Model {

	function __construct(){
		parent::__construct();
		//$this->load->library('Seizoen');
	}

	private function getArrayFromRows($result){
		if($result->num_rows() > 0){
    		$return = array();
    		foreach($result->result() as $object){
    			$ploeg = new PloegClass();
    			$ploeg->Id = $object->ploegid;
                $ploeg->Inschrijving = $object->ploegseizoenid;
    			$ploeg->Naam = $object->naam;
                //die(preg_match("/[a-zA-Z]+ [0-9]+[A-Za-z],[0-9][0-9][0-9][0-9] [a-zA-Z]+/",$object->locatie));
                if(preg_match("/[a-zA-Z]+ [0-9]+[A-Za-z]?,[0-9][0-9][0-9][0-9] [a-zA-Z]+/",$object->locatie) == 1){
                        $locatie = explode(',',$object->locatie);
                        
                        $a = explode(' ',$locatie[0]);
                        $straat = $a[0];
                        $nummer = $a[1];
                        $b = explode(' ',$locatie[1]);
                        
                        $postcode = $b[0];
                        $plaats = $b[1];
                 } else {
                        $straat = "";
                        $nummer = "";
                        $postcode = "";
                        $plaats = "";
                }
                
            
            
            
    			$ploeg->Locatie = $object->locatie;
                $ploeg->Straat = $straat;
                $ploeg->Nummer = $nummer;
                $ploeg->Postcode = $postcode;
                $ploeg->Plaats = $plaats;
                $ploeg->Thuis = $object->thuis;
    			$return[] = $ploeg;
            
    		}
    

    		return $return;
    	} else {
    		return null;
    	}
	}


	
    function SelectAll(){
    	$query = "select * from ploeg left join ploegseizoen on ploeg.ploegid = ploegseizoen.ploeg and ploeg.deleted = 0 and ploegseizoen.deleted <> 1";
    	$result = $this->db->query($query);
    	return $this->getArrayFromRows($result);
    	
    }

    function SelectById($id){
    	$query = "select * from ploeg left join ploegseizoen on ploeg.ploegid = ploegseizoen.ploeg where ploegid = ? and ploeg.deleted = 0 and ploegseizoen.deleted <> 1";
    	return $this->getArrayFromRows($this->db->query($query,array($id)));
    }
    
     function SelectHome($seizoen){
         $query = "select * from ploeg left join ploegseizoen on ploeg.ploegid = ploegseizoen.ploeg where thuis = 1 and ploegseizoen.seizoen = ? and ploeg.deleted = 0 and ploegseizoen.deleted <> 1";
    	return $this->getArrayFromRows($this->db->query($query,array($seizoen)));
    }

    function SelectBySeizoen($seizoen){
        $query = "select * from ploeg inner join ploegseizoen on ploeg.ploegid = ploegseizoen.ploeg where ploegseizoen.seizoen = ? and ploeg.deleted = 0 and ploegseizoen.deleted <> 1";
        return $this->getArrayFromRows($this->db->query($query,array($seizoen)));
    }

    function Insert($naam,$locatie,$thuis){
        if($thuis === 1){
            $query = "update ploeg set thuis = 0 where thuis = 1";
            $this->db->query($query);
        }
    	$query = "insert into ploeg (naam,locatie,thuis) values (?,?,?)";
    	$this->db->query($query,array($naam,$locatie,$thuis));
        $id = $this->db->insert_id();
        if($thuis == 1){
            
            $query = "select ploegseizoenid from ploegseizoen where ploeg = (select ploegid from ploeg where thuis = 1) and seizoen = (select seizoenid from seizoen where actief = 1)";
            $result = $this->db->query($query);
            $prev = $result->row()->ploegseizoenid;
            $query = "update ploeg set thuis = 0 where thuis = 1";
            $this->db->query($query);
            $query = "update spelerploegseizoen set ploegseizoen = (select ploegseizoenid from ploegseizoen where ploeg = ? and seizoen = (select seizoenid from seizoen where actief = 1)) where deleted = 0 and ploegseizoen = ?";
            $this->db->query($query,array($id,$prev));
        }
        
        return $id;
    }

    function Delete($id){
    	$query = "update ploeg set deleted = 1 where ploegid = ?";
    	$return = $this->db->query($query,array($id));
    	return $return;
    }
    
    function Update($id,$naam,$locatie,$thuis){
        
        if($thuis == 1){
            
            $query = "select ploegseizoenid from ploegseizoen where ploeg = (select ploegid from ploeg where thuis = 1) and seizoen = (select seizoenid from seizoen where actief = 1)";
            $result = $this->db->query($query);
            $prev = $result->row()->ploegseizoenid;
            $query = "update ploeg set thuis = 0 where thuis = 1";
            $this->db->query($query);
            $query = "update spelerploegseizoen set ploegseizoen = (select ploegseizoenid from ploegseizoen where ploeg = ? and seizoen = (select seizoenid from seizoen where actief = 1)) where deleted = 0 and ploegseizoen = ?";
            $this->db->query($query,array($id,$prev));
        }
        
        
        
        $query = "update ploeg set naam = ?, locatie = ?, thuis = ? where ploegid = ?";
        return $this->db->query($query,array($naam,$locatie,$thuis,$id));
    }
    
    function SelectNotInSeizoen($seizoen){
        $query = "select * from ploeg left join ploegseizoen on ploeg.ploegid = ploegseizoen.ploeg where ploegid not in (select ploeg from ploegseizoen where seizoen = $seizoen and deleted <> 1) and (ploeg.deleted = 0 and ploegseizoen.deleted <> 1)";
        return $this->getArrayFromRows($this->db->query($query));
        
    }
	
}
